<

Flutter を使用した Linux アプリの構築

このページでは、構築に特有の考慮事項について説明します。 Flutter を使用した Linux アプリ (シェル統合を含む) 配布用のアプリの準備。

Linuxとの統合

Linux プログラミング インターフェイス、 ライブラリ関数とシステムコールで構成されます。 C 言語と ABI を中心に設計されています。 幸いなことに、Dart は次のことを提供します。d67916c1-6204-425e-98f6-35cbf​​0aeb7eb、 Dart プログラムを有効にするように設計されています C ライブラリを効率的に呼び出すことができます。 FFI は、Flutter アプリに次の機能を提供します。 ネイティブメモリを割り当てるmallocまたcalloc、 ポインタ、構造体、コールバックのサポート、 および次のような ABI タイプlongsize_t

C ライブラリの呼び出しの詳細については、 Flutter から、参照Cの相互運用性を使用してdart:ffi

多くのアプリは、次のようなパッケージを使用することで恩恵を受けます。 基礎となるライブラリをラップします より便利で慣用的な Dart API を呼び出します。Canonical は一連のパッケージを構築しましたLinux 上で Dart と Flutter を有効にすることに重点を置き、 デスクトップ通知のサポートを含む、 dbus、ネットワーク管理、Bluetooth。

より一般的には、他の多くのパッケージは Linux をサポートします、 などの一般的なパッケージを含むurl_launchershared_preferencesfile_selector、 とpath_provider

Linux アプリの配布の準備

実行可能バイナリは、プロジェクト内の次の場所にあります。build/linux/<build mode>/bundle/。あなたと一緒に の実行可能バイナリbundleディレクトリがあります 2 つのディレクトリ:

  • lib必要なものが含まれています.soライブラリファイル
  • dataアプリケーションのデータ資産が含まれており、 フォントや画像など

これらのファイルに加えて、アプリケーションも さまざまなオペレーティング システム ライブラリに依存しています。 に対してコンパイルされています。 実行すると完全なリストを表示できますlddあなたの申請に反して。例えば、 Flutter デスクトップ アプリケーションがあると仮定します。 呼ばれたlinux_desktop_test、検査することができます 依存するシステム ライブラリは次のとおりです。

$ flutter build linux --release
$ ldd build/linux/release/bundle/linux_desktop_test

このアプリケーションの配布を終了するには すべてを含める必要がありますbundleディレクトリ、 インストールしている Linux システムを確認してください 必要なシステム ライブラリがすべて含まれています。 これは次のように簡単です。

$ sudo apt-get install libgtk-3-0 libblkid1 liblzma5

Linux アプリケーションの公開については、 にスナップストア、 見るLinux アプリケーションをビルドして Snap Store にリリースする